class: left, middle, inverse, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ # Hacia una bioestadística más completa
### Br. Miguel Rojas <p style="font-size: 12px;"><em>Imagen de la portada: <a href="https://unsplash.com/es/fotos/palos-de-madera-verdes-y-marrones-I-0OS5iRp0Q" style="color: #D6D6D6; text-decoration: underline;">Markus Spiske</a> en Unsplash. Editado.</em></p> ] --- class: middle, animate__animated, animate__fadeIn ## Sobre mí
.pull-left[ ### Formación - Estudiante de biología (Facultad de Ciencias, UCV). - 5 años de experiencia en
. ### Experiencia - Preparador de Laboratorio de Ecología I (I-2023 y I-2024) y Laboratorio de Ecología II (II-2024) - Asesoramiento académico particular en estadística. ] .pull-right[ ### Otros talleres dictados - [Iniciación en R para científicos (2022).](https://itsmiguelrojas.github.io/IntroRScientist/) ### Contacto - [LinkedIn
: itsmiguelrojas](https://www.linkedin.com/in/itsmiguelrojas/) - [GitHub
: itsmiguelrojas](https://github.com/itsmiguelrojas/) - [Kaggle
: itsmiguelrojas](https://www.kaggle.com/itsmiguelrojas/) ] --- class: justify, middle, animate__animated, animate__fadeIn ## Contenido (más o menos...)
1. Consideraciones iniciales. 2. Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors y prueba de normalidad de Shapiro-Wilk. 3. Prueba de Levene para homogeneidad de varianzas. 4. Análisis de varianza (ANOVA) y prueba *post hoc* de Tukey. 5. Pruebas no paramétricas: - Prueba de suma de rangos de Wilcoxon de una sola muestra. - Prueba de Mann-Whitney-Wilcoxon para muestras independientes. - Prueba de Wilcoxon para rangos signados. - Prueba de Kruskal-Wallis. 6. Regresión lineal, prueba de hipótesis de correlación y prueba de hipótesis de la pendiente. 7. Remuestreo por bootstrapping. --- class: justify, middle, animate__animated, animate__fadeIn ## ¿Qué vamos a aprender?
- Evaluar y explorar inicialmente los datos para formular las hipótesis adecuadas. - Verificar la normalidad de los datos y aprender a aplicar la prueba de Lilliefors y la prueba de Shapiro-Wilk para determinar si un conjunto de datos sigue una distribución normal. - Evaluar la homogeneidad de varianzas de varios grupos mediante la prueba de Levene. - Realizar un análisis de varianza para comparar las medias de tres o más grupos y hacer una prueba *post hoc* para identificar cuáles son las diferencias entre los grupos. - Poner a prueba las hipótesis cuando los datos no cumplen los supuestos de normalidad. - Comprender los conceptos básicos de la regresión lineal, aprender a ajustar un modelo de regresión y a interpretar los resultados, incluyendo los coeficientes y el `\(R^2\)`. - Calcular y interpretar los coeficientes de correlación de Pearson y Spearman para evaluar la relación entre dos variables. - Comprender el concepto de bootstrapping y su utilidad en la estimación de intervalos de confianza y p-valores. --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Consideraciones iniciales ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Al momento de realizar un experimento o un estudio observacional, es importante recolectar los datos que de este puedan surgir, bien sea mediante instrumentos de medición o por observación directa. Esto nos permitirá después justificar la razón de nuestro estudio. .pull-left[ <img src="img/wood2007.jpeg" style="border: 1px black solid;"> ] .pull-right[ Evaluación histológica de secciones sagitales de tejido uterino de ratón adulto teñidas con hematoxilina y eosina derivadas de las cuatro etapas del ciclo estral natural (A-D). Niveles séricos de 17β-estradiol y progesterona en función de la etapa del ciclo estral (E y F). Ancho uterino en función de los niveles séricos de 17β-estradiol y progesterona (G y H). Ancho uterino en función de la etapa del ciclo estral (I). Imagen tomada y modificada de: Wood, G. A., Fata, J. E., Watson, K. L. M. y Khokha, R. (2007). Circulating hormones and estrous stage predict cellular and stromal remodeling in murine uterus. *Reproduction*, **133(5)**: 1035-1044. DOI: [10.1530/REP-06-0302](https://doi.org/10.1530/REP-06-0302). ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Al momento de realizar un experimento o un estudio observacional, es importante recolectar los datos que de este puedan surgir, bien sea mediante instrumentos de medición o por observación directa. Esto nos permitirá después justificar la razón de nuestro estudio. .pull-left[ <img src="img/wood2007_2.jpeg" style="border: 1px black solid;"> ] .pull-right[ Proliferación de tipos celulares en el útero de ratón durante el ciclo estral. Estos fueron marcados con anti-PCNA (anti antígeno nuclear de proliferación celular). Imagen tomada de: Wood, G. A., Fata, J. E., Watson, K. L. M. y Khokha, R. (2007). Circulating hormones and estrous stage predict cellular and stromal remodeling in murine uterus. *Reproduction*, **133(5)**: 1035-1044. DOI: [10.1530/REP-06-0302](https://doi.org/10.1530/REP-06-0302). ] --- class: justify, animate__animated, animate__fadeIn ## Exploración de datos y planteamiento de hipótesis Es crucial realizar una exploración inicial de los datos recolectados, con el fin de describir patrones generales que muestren el comportamiento. Esto puede lograrse por medio del cálculo de estimadores (promedio, varianza, mediana, moda, etc.) y mediante análisis de gráficos. La exploración inicial de los datos permite generar hipótesis, que luego pueden ser sometidas a prueba mediante las pruebas estadísticas adecuadas. Tomado de [Wood y col. (2007)](https://doi.org/10.1530/REP-06-0302): > #### Statistical analysis > > To assess whether differences in the indices for proliferation, apoptosis, basement membrane integrity, and mRNA levels observed at specific stages of the estrous cycle were statistically significant, an ANOVA test was performed on the entire group. If the entire group was significant at P < 0.05, then pairwise comparisons of stage-specific mean values were performed using Fisher’s least significant difference test (LSD). Stages were considered significant if they were in a group that passed the ANOVA test and significantly different from another stage as determined by the LSD test. All values were expressed as the mean ± s.e.m. To determine the degree of linear relationship between various indices, analysis was performed on all mice in the study regardless of estrous stage, and the coefficient of correlation (r) was calculated. The degrees of freedom for all correlation analyses were 31 (since two mice were omitted from analyses related to hormone levels due to serum sample problems). La interpretación de hallazgos estadísticos debe ser capaz de diferenciar entre **significancia** y **relevancia**, ya que un resultado puede ser estadísticamente significativo sin tener necesariamente un impacto biológico práctico. --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Pruebas de normalidad ] --- class: justify, animate__animated, animate__fadeIn ## Forma de una distribución .pull-left[ Normalmente, cuando se conocen todos los datos de una población (o esta es lo suficientemente grande), es fácil visualizar su distribución. Por ejemplo, visualicen esta distribución: <!-- --> ] .pull-right[ Estos datos representan la distribución del peso total de abulones (*Haliotis* sp.) para 4177 individuos de la especie, cuya mediana, promedio y desviación estándar son respectivamente: ``` ## Mediana Promedio Des. estándar ## 0.7995 0.8287 0.4903 ``` Con toda esta información, es fácil darnos cuenta de que los datos están **sesgados**. Otra manera de verlo es a través del valor de la asimetría, que se calcula como: `\(\text{Asimetría}=\frac{\sum\limits_{i=1}^{N}\left(X_{i}-\bar{X}\right)^3}{(N)s^3}=\frac{261.3577}{(4177)(0.1178871)}=0.5308\)` ] --- class: justify, animate__animated, animate__fadeIn ## Forma de una distribución .pull-left[ Ahora observemos cómo se verían los datos si fuesen normales, utilizando los valores de promedio y desviación estándar, y comparando la distribución normal generada contra la verdadera distribución: <!-- --> ] .pull-right[ Las comparaciones visuales siempre son una buena manera de inspeccionar nuestros datos para verificar la normalidad. No obstante, existen pruebas de hipótesis destinadas para este propósito. Estas pruebas pueden ser complementadas con un análisis visual. La mayoría (si no todas) las hipótesis de estas pruebas son por lo general: `\(H_{0}:\text{Los datos siguen una distribución normal.}\\H_{a}:\text{Los datos no siguen una distribución normal.}\)` <p style="color: #00F;">Veamos dos de estas pruebas →</p> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors .pull-left[ **1** Se calculan la media aritmética y la desviación estándar de una muestra aleatoria de tamaño `\(n\)`: `\(\bar{X}=\frac{\sum\limits_{i=1}^{n}X_{i}}{n}\\s=\sqrt{\frac{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^2}{n-1}}\)` **2** Se ordenan los datos de forma ascendente. **3** Se estandarizan los datos. **4** Se formulan las hipótesis estadísticas: `\(H_{0}:\text{Los datos siguen una distribución normal.}\\H_{a}:\text{Los datos no siguen una distribución normal.}\)` **5** Se calcula el estadítico de prueba: `\(D_{n}=max|F(X)-S_{n}(X)|\)` ] .pull-right[ en donde `\(F(X)\)` es la función de distribución normal acumulativa, y `\(S_{n}(X)\)` es la probabilidad de obtener valores menores o iguales a `\(X_{i}\)` **6** Se busca el valor de `\(W_{\alpha;\: n}\)` crítico en la [tabla de Lilliefors](https://real-statistics.com/statistics-tables/lilliefors-test-table/). **7** Hacer el contraste: `\(D_{n} \geq W_{\alpha;\: n}\)` Si esta relación se cumple, decimos que **no hay suficiente evidencia para aceptar la hipótesis nula**, y tenemos que ir en favor de la **hipótesis alternativa**. En ese sentido, se dice que **los datos no siguen una distribución normal**. <p style="color: #00F;">Veamos un ejemplo...</p> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo Tomamos datos aleatorios del peso total de los abulones (por ejemplo, 50 muestras) y los ordenamos de menor a mayor: ``` ## [1] 0.0240 0.0320 0.1045 0.1160 0.1270 0.1440 0.2235 0.2625 0.3245 0.3400 ## [11] 0.4130 0.4250 0.4400 0.4475 0.4555 0.4585 0.4600 0.4675 0.4870 0.5410 ## [21] 0.5470 0.5550 0.5775 0.5780 0.5910 0.6015 0.6445 0.7750 0.7805 0.8050 ## [31] 0.8160 0.8285 0.8745 0.9045 0.9065 0.9810 1.0005 1.0105 1.0130 1.0270 ## [41] 1.1185 1.2780 1.2905 1.3005 1.3460 1.3485 1.6195 1.7860 1.8385 2.5500 ``` Calculamos su promedio y desviación estándar: `\(\bar{X}=\frac{0.0240+0.0320+ \dots +2.5500}{50}=\frac{37.586}{50}=0.7517\\s=\sqrt{\frac{(0.0240-0.7517)^2+(0.0320-0.7517)^2+ \dots +(2.5500-0.7517)^2}{50-1}}=\sqrt{\frac{12.91892}{49}}=0.5135\)` Ahora, se estandarizan los datos mediante la fórmula: `\(Z=\frac{X_{i}-\bar{X}}{s}\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo De esta manera, obtenemos lo siguiente: ``` ## [1] -1.417 -1.402 -1.260 -1.238 -1.217 -1.184 -1.029 -0.953 -0.832 -0.802 ## [11] -0.660 -0.636 -0.607 -0.592 -0.577 -0.571 -0.568 -0.554 -0.516 -0.410 ## [21] -0.399 -0.383 -0.339 -0.338 -0.313 -0.293 -0.209 0.045 0.056 0.104 ## [31] 0.125 0.150 0.239 0.298 0.301 0.447 0.485 0.504 0.509 0.536 ## [41] 0.714 1.025 1.049 1.069 1.157 1.162 1.690 2.014 2.117 3.502 ``` Con estos valores de `\(Z\)`, se buscan los valores de `\(F(X)\)` en la tabla normal: ``` ## [1] 0.0782 0.0805 0.1037 0.1078 0.1119 0.1183 0.1518 0.1704 0.2027 0.2113 ## [11] 0.2547 0.2623 0.2719 0.2768 0.2820 0.2840 0.2850 0.2900 0.3031 0.3408 ## [21] 0.3451 0.3508 0.3672 0.3676 0.3771 0.3849 0.4173 0.5181 0.5223 0.5413 ## [31] 0.5498 0.5594 0.5945 0.6170 0.6185 0.6724 0.6860 0.6929 0.6946 0.7041 ## [41] 0.7625 0.8473 0.8530 0.8574 0.8764 0.8774 0.9545 0.9780 0.9829 0.9998 ``` Buscamos también los valores de `\(S_{n}\)`: ``` ## [1] 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20 0.22 0.24 0.26 0.28 0.30 ## [16] 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 ## [31] 0.62 0.64 0.66 0.68 0.70 0.72 0.74 0.76 0.78 0.80 0.82 0.84 0.86 0.88 0.90 ## [46] 0.92 0.94 0.96 0.98 1.00 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo Ahora, se calcula cada valor de `\(|F(X)-S_{n}(X)|\)`: ``` ## [1] 0.0582 0.0405 0.0437 0.0278 0.0119 0.0017 0.0118 0.0104 0.0227 0.0113 ## [11] 0.0347 0.0223 0.0119 0.0032 0.0180 0.0360 0.0550 0.0700 0.0769 0.0592 ## [21] 0.0749 0.0892 0.0928 0.1124 0.1229 0.1351 0.1227 0.0419 0.0577 0.0587 ## [31] 0.0702 0.0806 0.0655 0.0630 0.0815 0.0476 0.0540 0.0671 0.0854 0.0959 ## [41] 0.0575 0.0073 0.0070 0.0226 0.0236 0.0426 0.0145 0.0180 0.0029 0.0002 ``` De aquí, se elige el mayor valor de todos, el cual es: ``` ## [1] 0.1351 ``` Luego, se busca el valor crítico de `\(W_{\alpha;\:n}\)` para `\(n=50\)` y `\(\alpha=0.05\)` en la [tabla de Lilliefors](https://real-statistics.com/statistics-tables/lilliefors-test-table/), el cual es 0.1246. De esta forma, se contrastan ambos valores: `\(0.1351 \geq 0.1246\)` Lo cual claramente es cierto. Por lo tanto, no hay suficiente evidencia para aceptar `\(H_{0}\)`, y debemos optar a favor de `\(H_{a}\)`. Por lo tanto, concluimos que los datos **no siguen una distribución normal**. --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Kolmogorov-Smirnov con corrección de Lilliefors - Ejemplo Otra manera de ver esto es a través del p-valor: ``` ## ## Lilliefors (Kolmogorov-Smirnov) normality test ## ## data: abalone.muestra ## D = 0.13507, p-value = 0.0232 ``` Esto es fácilmente lograble a través de herramientas computacionales y lenguajes de programación, como R o Python. Esta clase de salidas las veremos a lo largo de la presentación. <div class="img-container"> <img src="https://mattsosna.com/images/r-python.png" width="700px"> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Shapiro-Wilk .pull-left[ **1** Se calculan la media aritmética y la desviación estándar de una muestra aleatoria de tamaño `\(n\)`: `\(\bar{X}=\frac{\sum\limits_{i=1}^{n}X_{i}}{n}\\s=\sqrt{\frac{\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^2}{n-1}}\)` **2** Se ordenan los datos de forma ascendente. **3** Se calcula la suma de los cuadrados de las diferencias (SS): `\(SS=\sum\limits_{i=1}^{n}\left(X_{i}-\bar{X}\right)^2\)` **4** Se formulan las hipótesis estadísticas: `\(H_{0}:\text{Los datos siguen una distribución normal.}\\H_{a}:\text{Los datos no siguen una distribución normal.}\)` ] .pull-right[ **5** Se calcula `\(b\)` como se indica a continuación, tomando las ponderaciones `\(a_{i}\)` de la tabla de coeficientes (Tabla 1) en las [tablas de Shapiro-Wilk](https://real-statistics.com/statistics-tables/shapiro-wilk-table/): `\(b=\sum\limits_{i=1}^{m}a_{i}\left(X_{n+1-i}-X_{i}\right)\)` Si `\(n\)` es par, entonces `\(m=n/2\)`. Si `\(n\)` es impar, entonces `\(m=(n-1)/2\)`. **6** Se calcula el estadístico de prueba: `\(W=\frac{b^2}{SS}\)` **7** Se busca en la Tabla 2 ([tablas de Shapiro-Wilk](https://real-statistics.com/statistics-tables/shapiro-wilk-table/)) el valor que más se acerque a `\(W\)`, el cual indica el **p-valor** de la prueba. Para un `\(\alpha=0.05\)`, si este valor es mayor o igual, se acepta `\(H_{0}\)`. Si no, se opta por `\(H_{a}\)`. <p style="color: #00F;">Vamos con el ejemplo...</p> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Shapiro-Wilk - Ejemplo Tomemos los mismos datos de antes (peso total de abulones), ordenados de forma ascendente: ``` ## [1] 0.0240 0.0320 0.1045 0.1160 0.1270 0.1440 0.2235 0.2625 0.3245 0.3400 ## [11] 0.4130 0.4250 0.4400 0.4475 0.4555 0.4585 0.4600 0.4675 0.4870 0.5410 ## [21] 0.5470 0.5550 0.5775 0.5780 0.5910 0.6015 0.6445 0.7750 0.7805 0.8050 ## [31] 0.8160 0.8285 0.8745 0.9045 0.9065 0.9810 1.0005 1.0105 1.0130 1.0270 ## [41] 1.1185 1.2780 1.2905 1.3005 1.3460 1.3485 1.6195 1.7860 1.8385 2.5500 ``` Ya conocemos su promedio y desviación estándar: `\(\bar{X}=0.7517\\s=0.5135\)` Como ya conocemos el valor de `\(s\)`, es fácil despejar para encontrar `\(SS\)`: `\(SS=s^2 \times (n-1)=0.5135^2 \times (50-1) = 12.91892\)` Ahora, se calcula el valor de `\(b\)`: `\(m=50/2=25\\b=0.3751\left(2.5500-0.0240\right)+0.2574\left(1.8385-0.0320\right)+ \dots +0.0035\left(0.6015-0.5910\right)=3.452476\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de normalidad de Shapiro-Wilk - Ejemplo Ahora, solo debemos dividir `\(b^2\)` entre `\(SS\)` para hallar el estadístico de prueba `\(W\)`: `\(W=\frac{3.452476^2}{12.91892}=0.922646\)` A continuación, buscamos el valor aproximado en las [tablas de Shapiro-Wilk](https://real-statistics.com/statistics-tables/shapiro-wilk-table/), específicamente en la Tabla 2: <div style="height: 150px; overflow: scroll;"> <img src="https://real-statistics.com/wp-content/uploads/2012/12/image3742.png"> </div> Como vemos, el valor ni siquiera aparece reflejado en la tabla cuando `\(n=50\)`, por lo que el p-valor < 0.01. Por lo tanto, concluimos que no tenemos suficiente evidencia para aceptar `\(H_{0}\)`, por lo que los datos **no siguen una distribución normal**. Podemos calcular el p-valor a través de R: ``` ## ## Shapiro-Wilk normality test ## ## data: abalone.muestra ## W = 0.92265, p-value = 0.002943 ``` --- class: justify, animate__animated, animate__fadeIn ## ¿Lilliefors o Shapiro-Wilk? ¿Cuál prueba es mejor? Todo depende del criterio con que se use, pero en general: | Característica | Prueba de normalidad de Lilliefors | Prueba de normalidad de Shapiro-Wilk | |:---:|:---|:---| | Base estadística | Una modificación de la prueba de Kolmogorov-Smirnov (KS). Compara la función de distribución acumulada (CDF) empírica de la muestra con una distribución normal teórica, donde la media y la desviación estándar se estiman a partir de los datos, mediante un estadístico `\(D_{n}\)`. | Una prueba específica de normalidad que compara los valores muestrales ordenados con los estadísticos de orden esperado de una distribución normal. Calcula un estadístico `\(W\)`, que es el cociente de dos estimaciones de varianza. | |Supuestos|Muestras aleatorias independientes, datos continuos.|Muestras aleatorias independientes, datos continuos.| | Sensibilidad | Generalmente menos potente, especialmente para detectar desviaciones de la normalidad relacionadas con la curtosis. | Considerada ampliamente como la prueba de normalidad más potente, especialmente para muestras de tamaño pequeño a moderado. Es muy sensible a una amplia gama de desviaciones de la normalidad, incluyendo asimetría y curtosis. | | Tamaño de la muestra | Tradicionalmente se utiliza para muestras más pequeñas, pero se recomienda su uso con tamaños de muestra superiores a 50 donde la prueba de Shapiro-Wilk puede no estar disponible. | Comúnmente utilizado para tamaños de muestra pequeños a medianos (`\(n<50\)`). Algunos paquetes de software estadístico restringen su uso para muestras con `\(n \leq 5000\)`, lo cual corresponde a la [prueba de Shapiro-Wilk extendida](https://real-statistics.com/tests-normality-and-symmetry/statistical-tests-normality-symmetry/shapiro-wilk-expanded-test/). | | Uso | Cuando el tamaño de la muestra sea grande (`\(n > 50\)`) o cuando el software no ofrezca la prueba de Shapiro-Wilk para el tamaño de muestra específico. También es una buena opción cuando se desea comparar la CDF de sus datos con una distribución teórica. | Primera opción para comprobar la normalidad. Debido a su superior potencia, es la prueba más recomendada en muchas guías estadísticas. | No obstante, vamos a someterlo a prueba... --- class: justify, animate__animated, animate__fadeIn ## ¿Lilliefors o Shapiro-Wilk? ¿Cuál prueba es mejor? <div class="img-container"> <img src="img/comparacion_p_valores.png" style="border: 1px black solid;"> </div> --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Prueba de homogeneidad de varianzas ] --- class: justify, animate__animated, animate__fadeIn ## Comparación de distribuciones y varianzas .pull-left[ Podemos separar la distribución de peso total en tres grupos distintos (machos, hembras e individuos infantes aún sin desarrollar). Si tomamos, por ejemplo, 15 individuos de cada grupo de manera aleatoria, obtenemos los siguientes p-valores para la prueba de Lilliefors y Shapiro-Wilk, así como la varianza: ``` ## # A tibble: 3 × 4 ## sex p.value.l p.value.sw var ## <fct> <dbl> <dbl> <dbl> ## 1 Macho 0.281 0.298 0.309 ## 2 Hembra 0.565 0.875 0.304 ## 3 Infante 0.0265 0.0123 0.0413 ``` A la luz de las pruebas de normalidad, con un `\(\alpha=0.05\)`, la distribución de infantes es no normal, mientras que la de machos y hembras lo es. Asimismo, la varianza de individuos infantes es menor en comparación con los machos y las hembras. Esto se puede verificar con el gráfico de la derecha. Aunque claramente las varianzas son diferentes, podemos llevar a cabo una prueba homogeneidad de varianzas. ] .pull-right[ <!-- --> ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas .pull-left[ **1** Se establecen las hipótesis: ***H0: Todos los grupos tienen varianzas similares.*** ***Ha: Al menos uno de los grupos posee una varianza distinta de las otras.*** **2** Se tienen `\(k\)` grupos, cada uno con un promedio `\(\bar{X}_{j}\)`. Se calcula el valor absoluto de la diferencia entre las observaciones de cada grupo y su media correspondiente, conocido como los residuales: `\(e_{ij}=|X_{i}-\bar{X}_{ij}|\)` **3** Se calcula la suma de los cuadrados entre los grupos (`\(SSB\)`) y la suma de los cuadrados dentro de los grupos (`\(SSW\)`): `\(SSB=\sum\limits_{j=1}^{k}n_{j}\left(\bar{e}_{j}-\bar{e}_{\text{total}}\right)^{2}\\SSW=\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n}\left(e_{ij}-\bar{e}_{j}\right)^{2}\)` ] .pull-right[ **4** Se calcula la media de la suma de los cuadrados entre los grupos (`\(MSB\)`) y la media de la suma de los cuadrados dentro de los grupos (`\(MSW\)`), con `\(k-1\)` y `\(n-k\)` grados de libertad respectivamente: `\(MSB=\frac{SSB}{k-1}\\MSW=\frac{SSW}{n-k}\)` **5** Se calcula el estadístico de prueba `\(F\)`: `\(F=\frac{MSB}{MSW}\)` **6** Se busca el valor crítico en la tabla de F de Fisher, con `\(df_{1}=k-1\)` y `\(df_{2}=n-k\)`. **7** Se contrasta el valor crítico contra el estadístico de prueba: `\(F \geq F_{df_{1},df_{2},\alpha}\)` Si `\(F\)` es mayor o igual que el valor crítico, no se acepta `\(H_{0}\)`. Si es menor, se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo .pull-left[ Se tienen 15 observaciones del peso total para cada grupo: ``` ## Macho Hembra Infante ## 1 0.9440 1.7730 0.3535 ## 2 1.2700 0.2070 0.1920 ## 3 0.6565 1.6840 0.2260 ## 4 1.3745 1.0770 0.2005 ## 5 0.6295 1.4355 0.5130 ## 6 0.9325 1.5660 0.2770 ## 7 2.0885 0.9775 0.1375 ## 8 1.4275 0.8435 0.5910 ## 9 2.1400 2.1030 0.7045 ## 10 0.7720 0.3840 0.3200 ## 11 0.1700 1.0905 0.2710 ## 12 0.5230 0.7760 0.8025 ## 13 0.5150 0.5755 0.3060 ## 14 1.0270 1.7190 0.2050 ## 15 1.0240 1.0325 0.2085 ``` Se calcula la media para cada grupo: ``` ## sex Promedio ## 1 Macho 1.0329 ## 2 Hembra 1.1496 ## 3 Infante 0.3539 ``` ] .pull-right[ Una vez calculados los promedios, se restan de cada observación correspondiente y se expresan en su valor absoluto: ``` ## Macho Hembra Infante ## 1 0.0889 0.6234 0.0004 ## 2 0.2371 0.9426 0.1619 ## 3 0.3764 0.5344 0.1279 ## 4 0.3416 0.0726 0.1534 ## 5 0.4034 0.2859 0.1591 ## 6 0.1004 0.4164 0.0769 ## 7 1.0556 0.1721 0.2164 ## 8 0.3946 0.3061 0.2371 ## 9 1.1071 0.9534 0.3506 ## 10 0.2609 0.7656 0.0339 ## 11 0.8629 0.0591 0.0829 ## 12 0.5099 0.3736 0.4486 ## 13 0.5179 0.5741 0.0479 ## 14 0.0059 0.5694 0.1489 ## 15 0.0089 0.1171 0.1454 ``` Se calcula también el promedio total de residuales o `\(\bar{e}_{\text{total}}\)`: ``` ## [1] 0.3429 ``` ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo Ahora, calculamos `\(SSB\)` y `\(SSW\)`. Primero, calculamos los promedios de los residuales de cada grupo: ``` ## sex Promedio ## 1 Macho 0.4181 ## 2 Hembra 0.4511 ## 3 Infante 0.1594 ``` `\(SSB=\sum\limits_{j=1}^{k}n_{j}\left(\bar{e}_{j}-\bar{e}_{\text{total}}\right)^{2}=15\left(0.4181-0.3429\right)^{2}+15\left(0.4511-0.3429\right)^{2}+15\left(0.1594-0.3429\right)^{2}\\=\boxed{0.76537}\)` `\(SSW=\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n}\left(e_{ij}-\bar{e}_{j}\right)^{2}=\left(0.0889-0.4181\right)^{2}+\left(0.6234-0.4511\right)^{2}+\left(0.0004-0.1594\right)^{2}+\dots \\ = \boxed{3.10712}\)` A continuación, los dividimos entre `\(k-1\)` y `\(n-k\)` respectivamente, para así obtener `\(MSB\)` y `\(MSW\)`: `\(MSB=\frac{0.76537}{2}=0.38268\\MSW=\frac{3.10712}{42}=0.07398\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo Ahora, calculamos el estadístico `\(F\)`: `\(F=\frac{MSB}{MSW}=\frac{0.38268}{0.07398}=5.1729\)` Buscamos el valor de `\(F_{\text{crítico}}\)`, el cual es 3.2199. Contrastamos ambos valores: `\(5.1729 \geq 3.2199\)` Lo cual claramente es cierto. Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`. De esta forma, concluimos que al menos una de las distribuciones tiene una varianza distinta. Sabemos, por el gráfico inmediatamente anterior, que el grupo con varianza no similar es el de infantes. Otra manera de ver esto es mediante una prueba *post hoc* de Tukey: ``` ## $sex ## diff lwr upr p adj ## Hembra-Macho 0.03294222 -0.2083478 0.27423229 0.9412436 ## Infante-Macho -0.25870667 -0.4999967 -0.01741660 0.0331958 ## Infante-Hembra -0.29164889 -0.5329390 -0.05035882 0.0145375 ``` Esto lo veremos más adelante en el análisis de varianza (ANOVA). --- class: justify, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Ejemplo El número de comparaciones de 2 grupos que vimos anteriormente (Hembra-Macho, Infante-Macho e Infante-Hembra) lo calculamos a través de la fórmula de la combinatoria: `\(C_{k}^{2}=\frac{k!}{2!\left(k-2\right)!}\)` También podemos visualizar el p-valor y la tabla construida para esta prueba en R (en realidad, es la misma tabla utilizada para el ANOVA): ``` ## Analysis of Variance Table ## ## Response: residuales ## Df Sum Sq Mean Sq F value Pr(>F) ## sex 2 0.76537 0.38268 5.1729 0.009811 ** ## Residuals 42 3.10712 0.07398 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` También lo veremos más adelante en el análisis de varianza (ANOVA). --- class: left, animate__animated, animate__fadeIn ## Prueba de Levene para homogeneidad de varianzas - Resumen |Característica|Descripción| |:---:|:---| |Objetivo|Pone a prueba la `\(H_{0}\)` de que varios grupos tienen varianzas iguales.| |Supuestos|Supone que las muestras son independientes y se extraen de poblaciones con una distribución continua.| |Robustez|Más robusto a las desviaciones de la normalidad en comparación con otras pruebas, como la prueba de Bartlett.| |Estadístico de prueba|Estadístico `\(F\)`, basado en las desviaciones absolutas de las observaciones con respecto a las medias o medianas de su grupo.| |Sensibilidad| Sensible a tamaños de muestra desiguales; puede manejar grupos con diferentes números de observaciones.| |Aplicación|Se utiliza comúnmente en ANOVA y análisis de regresión para comprobar el supuesto de homogeneidad de varianzas.| .pull-left.justify[ Recordar también que la distribución F de Fisher es, en realidad, una familia de distribuciones, construida a partir de dos distribuciones normales, cada una con su promedio y su varianza. En general, para la prueba de Levene, las dos fuentes de varianza provienen de las diferencias entre los grupos (`\(SSB\)`) y dentro de los grupos (`\(SSW\)`), que constituyen estimadores insesgados de la varianza. ] .pull-right[  ] --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Análisis de varianza (ANOVA) ] --- class: justify, animate__animated, animate__fadeIn ## Comparar medias de 3 o más grupos .pull-left[ Ya vimos que la varianza de uno de los grupos es menor, y que además ese mismo grupo posee una distribución no normal. No obstante, podemos realizar un análisis de varianza (ANOVA), aún sabiendo que estos supuestos no se cumplen. El ANOVA es una prueba que compara las medias de tres o más grupos para determinar si existe una diferencia en al menos una de las medias de los grupos con respecto a las demás. Si aplicáramos 3 pruebas *t* de Student (sabiendo que son posibles hasta 3 combinaciones distintas de 2 grupos a la vez) para comparar las medias, con un `\(\alpha=0.05\)`, **el error tipo I aumentaría hasta un `\(1 - \left(1-\alpha\right)^{3} \approx 0.14\)`**. En estos casos, la mejor opción es el ANOVA, ya que permite comparar todas las medias de todos los grupos a la vez. ] .pull-right[ <!-- --> ] --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) .pull-left[ **1** Se establecen las hipótesis: ***H0: Todos los grupos tienen medias similares.*** ***Ha: Al menos uno de los grupos posee una media distinta de las otras.*** **2** Se tienen `\(k\)` grupos, cada uno con un promedio `\(\bar{X}_{j}\)`. Estos promedios se calculan mediante la fórmula de media aritmética. **3** Se calcula la suma de los cuadrados entre los grupos (`\(SSB\)`) y la suma de los cuadrados dentro de los grupos (`\(SSW\)`): `\(SSB=\sum\limits_{j=1}^{k}n_{j}\left(\bar{X}_{j}-\bar{X}_{\text{total}}\right)^{2}\\SSW=\sum\limits_{j=1}^{k}\sum\limits_{i=1}^{n}\left(X_{ij}-\bar{X}_{j}\right)^{2}\)` ] .pull-right[ **4** Se calcula la media de la suma de los cuadrados entre los grupos (`\(MSB\)`) y la media de la suma de los cuadrados dentro de los grupos (`\(MSW\)`), con `\(k-1\)` y `\(n-k\)` grados de libertad respectivamente: `\(MSB=\frac{SSB}{k-1}\\MSW=\frac{SSW}{n-k}\)` **5** Se calcula el estadístico de prueba `\(F\)`: `\(F=\frac{MSB}{MSW}\)` **6** Se busca el valor crítico en la tabla de F de Fisher, con `\(df_{1}=k-1\)` y `\(df_{2}=n-k\)`. **7** Se contrasta el valor crítico contra el estadístico de prueba: `\(F \geq F_{df_{1},df_{2},\alpha}\)` Si `\(F\)` es mayor o igual que el valor crítico, no se acepta `\(H_{0}\)`. Si es menor, se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo Los pasos son exactamente iguales a los de la prueba de Levene (de hecho, la prueba de Levene está basada en la prueba ANOVA). La única diferencia radica en que, en la prueba de Levene, se trabaja en base a las desviaciones absolutas de las observaciones con respecto al promedio de cada grupo, mientras que aquí estamos comparando los promedios de los grupos y trabajamos con las observaciones directas. Siendo esto así, solo mostramos el resultado de la tabla: ``` ## Analysis of Variance Table ## ## Response: whole_weight ## Df Sum Sq Mean Sq F value Pr(>F) ## sex 2 5.5397 2.76984 12.697 4.866e-05 *** ## Residuals 42 9.1623 0.21815 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` Por lo tanto, concluimos, con un `\(\alpha=0.05\)`, que al menos una de las medias es diferente. Pero... ¿cuál de todas las medias? --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey Se utiliza para comparar las diferencias entre medias e interpretar cuáles de ellas son diferentes. .pull-left[ **1** Se plantean las hipótesis: `\(H_{0}:\text{Las medias de ambos grupos son iguales.}\\H_{a}:\text{Las medias de ambos grupos difieren.}\)` **2** Se determina cuántas comparaciones de pares de medias han de hacerse mediante la fórmula de la combinatoria: `\(C_{k}^{2}=\frac{k!}{2!\left(k-2\right)!}\)` **3** Se calcula la diferencia entre medias: `\(\bar{X}_{i}-\bar{X}_{j}\)` **4** Se calcula el estimador insesgado del error estándar (`\(SE\)`): ] .pull-right[ `\(SE=\sqrt{\frac{MSW}{n}}\)` donde `\(n\)` es el tamaño de cada grupo. **5** Se calcula el estadístico de prueba `\(q\)`: `\(q=\frac{\bar{X}_{i}-\bar{X}_{j}}{SE}\)` **6** Se busca el valor de `\(q_{\text{crítico}}\)` en la [tabla de rangos `\(q\)` estudentizados](https://real-statistics.com/statistics-tables/studentized-range-q-table/), con `\(df\)` iguales a los de `\(MSW\)`. **7** Se compara cada valor de `\(q\)` contra el `\(q_{\text{crítico}}\)`: `\(|q| \geq q_{\text{crítico}}\)` Con un `\(\alpha=0.05\)`, si `\(q\)` es mayor o igual que `\(q_{\text{crítico}}\)`, no hay suficiente evidencia para aceptar `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey Se conoce la media de cada grupo: `\(\bar{X}_{\text{Macho}}=1.0329 \\ \bar{X}_{\text{Hembra}}=1.1496 \\ \bar{X}_{\text{Infante}}=0.3539\)` También se sabe que pueden hacer hasta `\(C_{3}^{2}=3\)` combinaciones de pares de medias distintas. Se calculan, entonces, las diferencias entre medias: `\(\bar{X}_{\text{Hembra}} - \bar{X}_{\text{Macho}} = 0.1167 \\ \bar{X}_{\text{Infante}} - \bar{X}_{\text{Macho}} = -0.6791 \\ \bar{X}_{\text{Infante}} - \bar{X}_{\text{Hembra}} = -0.7957\)` Se calcula también `\(SE\)` a partir de `\(MSW\)` y del tamaño `\(n\)` de cada grupo, que es 15: `\(SE=\sqrt{\frac{0.21815}{15}}=0.1206\)` --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey Ahora, se calcula el estadístico de prueba `\(q\)` para cada par de medias: `\(\text{Hembra - Macho}:0.9674 \\ \text{Infante - Macho}:-5.6309 \\ \text{Infante - Hembra}:-6.5984\)` Cada uno de estos valores se compara contra un `\(q_{\text{crítico}}\)` con un `\(\alpha=0.05\)` y `\(df=42\)` grados de libertad. Si buscamos en la [tabla](https://real-statistics.com/statistics-tables/studentized-range-q-table/), el más cercano que obtenemos es el valor de `\(df=40\)`, el cual es 3.442. `\(\text{Hembra - Macho}:|0.9674| \geq 3.442\)` ❌ (Se acepta `\(H_{0}\)`) `\(\text{Infante - Macho}: |-5.6309| \geq 3.442\)` ✅ (Se rechaza `\(H_{0}\)`) `\(\text{Infante - Hembra}: |-6.5984| \geq 3.442\)` ✅ (Se rechaza `\(H_{0}\)`) Por lo tanto, en los pares **Infante - Macho** e **Infante - Hembra** hay diferencias en la media, y es en estos subgrupos donde no hay suficiente evidencia para aceptar `\(H_{0}\)`. Así, se dice que las media del peso total de infantes difiere tanto de la media de machos como de hembras. --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey ``` ## Tukey multiple comparisons of means ## 95% family-wise confidence level ## ## Fit: aov(formula = abalone.sex.lm) ## ## $sex ## diff lwr upr p adj ## Hembra-Macho 0.1166667 -0.297678 0.5310113 0.7740146 ## Infante-Macho -0.6790667 -1.093411 -0.2647220 0.0007635 ## Infante-Hembra -0.7957333 -1.210078 -0.3813887 0.0000913 ``` Si los tamaños de los grupos son distintos, la fórmula para calcular `\(SE\)` se convierte en: `\(SE=\sqrt{\frac{MSW}{2}\left(\frac{1}{n_{i}}+\frac{1}{n_{j}}\right)}\)` El intervalo de confianza se puede calcular como `\(q_{\text{crítico}}\sqrt{\frac{MSW}{n}}\)`. Esto nos da la posibilidad de hacer el siguiente gráfico: --- class: justify, animate__animated, animate__fadeIn ## Análisis de varianza (ANOVA) - Ejemplo #### Prueba de rangos de Tukey <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Un momento... ¿cómo que hay más de un ANOVA? | **Tipo de prueba** | **Función** | |:---:|:---| | ANOVA de una vía | Compara las medias de tres o más grupos independientes para determinar si al menos uno es diferente. | | ANOVA de dos vías | Examina el efecto de dos factores independientes sobre una variable dependiente y sus interacciones. | | ANOVA de medidas repetidas | Compara las medias de varios grupos en diferentes condiciones o momentos en el tiempo. | | ANOVA de modelo mixto | Combina efectos fijos y aleatorios, permitiendo el análisis de datos con medidas repetidas (factores dentro de sujetos) y grupos independientes (factores entre sujetos). | | MANOVA | Extensión de ANOVA que analiza múltiples variables dependientes simultáneamente. | | ANCOVA | Combina ANOVA y regresión, ajustando las medias de los grupos por una o más covariables o variables continuas. | | PERMANOVA | Variante no paramétrica del ANOVA que evalúa diferencias en la composición de grupos basándose en distancias o disimilitudes entre ellos, calculando posibles rearreglos de los datos observados. | --- class: middle, inverse, center, animate__animated, animate__fadeIn background-image: url(data:image/png;base64,#markus-spiske-I-0OS5iRp0Q-unsplash.jpg) background-size: cover .pull-left[ ### Pruebas no paramétricas ] --- class: justify, animate__animated, animate__fadeIn ## Pruebas no paramétricas Cuando los supuestos de las pruebas paramétricas (es decir, aquellas que están basadas en parámetros, como la media y la desviación estándar) no se cumplen, sobre todo aquellos concernientes a la distribución de los datos, pueden utilizarse pruebas no paramétricas en su lugar. Por lo general, se usan las **clasificaciones** de las observaciones en vez de las mediciones reales para llevar a cabo estas pruebas. A pesar de que existen múltiples pruebas no paramétricas, nos vamos a fijar especialmente en estas: | Prueba de suma de rangos de Wilcoxon de una sola muestra | Prueba de Mann-Whitney-Wilcoxon para muestras independientes | Prueba de Wilcoxon para rangos signados | Prueba de Kruskal-Wallis | | :--- | :--- | :--- | :--- | | Se utiliza para evaluar si la mediana de una muestra es diferente de un valor específico. Es especialmente útil cuando los datos no siguen una distribución normal. | Compara dos grupos independientes para determinar si provienen de la misma población. Es una alternativa a la prueba *t* de Student para muestras independientes. | Similar a la prueba de suma de rangos de Wilcoxon de una sola muestra. Se utiliza para comparar dos muestras relacionadas o emparejadas. Es una alternativa a la prueba *t* de Student para muestras relacionadas o pareadas. | Se utiliza para comparar tres o más grupos independientes. Es una alternativa al ANOVA cuando los supuestos de normalidad no se cumplen. | Veamos cómo funcionan estas pruebas... --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra .pull-left[ **1** Se establecen las hipótesis: `\(H_{0}:\:Med=Med_{0}\)` `\(H_{a}:\:Med \neq Med_{0}\\H_{a}:\:Med > Med_{0}\\H_{a}:\:Med < Med_{0}\)` **2** Se resta la mediana hipotética (`\(Med_{0}\)`) de las observaciones. **Las diferencias cuyo resultado sea cero, se descartan**. **3** Se expresan las diferencias como valores absolutos. **4** Se ordenan las diferencias en orden ascendente. **5** Se clasifican las diferencias (se hace un *ranking*). Si hay empates (valores repetidos), se calcula la posición promedio. **6** Se vuelven a asignar los signos originales de las diferencias a los *rankings*. ] .pull-right[ **Primer caso**: Si `\(n>25\)` **7** Se calcula el cuadrado de cada *ranking* (`\(R_{i}^{2}\)`). **8** Se calcula el estadístico de prueba `\(T\)`: `\(T=\frac{\sum\limits_{i=1}^{n}R_{i}}{\sqrt{\sum\limits_{i=1}^{n}R_{i}^{2}}}\text{ (Si hay empates).}\\T=\sum\limits_{i=1}^{k}R_{i}^{+}\text{ (Si no hay empates).}\)` **9** El estadístico de prueba `\(T\)` se compara contra un valor crítico de `\(Z\)` de una tabla normal estandarizada: `\(|T| \geq Z_{\frac{\alpha}{2}}\text{ (DC)}\\T \geq Z_{\alpha}\text{ (CD)}\\T \leq -Z_{\alpha}\text{ (CI)}\)` Si se cumple alguna de estas propuestas (dependiendo de la direccionalidad de la hipótesis), no se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra .pull-left[ **Segundo caso**: Si `\(n<25\)` **7** Se calcula la suma de los *rankings* positivos (`\(R_{i}^{+}\)`). **8** El estadístico de prueba `\(T\)` será: `\(T=\sum\limits_{i=1}^{n}R_{i}^{+}\)` **9** Se busca el valor de `\(T_{\text{crítico}}\)` en la [tabla de Wilcoxon de rangos signados](https://real-statistics.com/statistics-tables/wilcoxon-signed-ranks-table/), con el valor de `\(\alpha\)` especificado (normalmente 0.05). Las hipótesis se contrastan como: `\(T \leq T_{n;\:\alpha} \text{ (DC)}\\T \leq T_{n;\: 2\alpha} \text{ (CD)}\\-T \geq -T_{n;\: 2\alpha} \text{ (CI)}\)` **Nota**: Para las pruebas de una sola cola, se duplica el valor de `\(\alpha\)` y se busca en la tabla correspondiente. ] .pull-right[ Si se cumple alguna de estas propuestas (dependiendo de la direccionalidad de la hipótesis), no se acepta `\(H_{0}\)`. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Para este caso, se usarán datos provenientes de la medición de individuos vegetales (árboles y arbustos) del [Jardín Botánico de Caracas](https://www.openstreetmap.org/relation/3380028) y de [Cerro El Volcán](https://www.openstreetmap.org/relation/10703464). ``` ## # A tibble: 281 × 8 ## individuo lugar muerto cap dap area.basal altura clase.dap ## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr> ## 1 1 CV No 37.5 11.9 0.0990 9 DAP > 10 ## 2 2 CV No 119 37.9 0.402 16 DAP > 10 ## 3 3 CV No 72 22.9 1.03 16 DAP > 10 ## 4 4 CV No 5 1.59 0.00497 2.7 1 cm < DAP ≤ 10 cm ## 5 5 CV No 42 13.4 0.351 10.5 DAP > 10 ## 6 6 CV No 7 2.23 0.00975 5.25 1 cm < DAP ≤ 10 cm ## 7 7 CV Sí 29 9.23 0.167 NA 1 cm < DAP ≤ 10 cm ## 8 8 CV No 29 9.23 0.167 13 1 cm < DAP ≤ 10 cm ## 9 9 CV No 55 17.5 0.602 15 DAP > 10 ## 10 10 CV No 12.5 3.98 0.0311 4.5 1 cm < DAP ≤ 10 cm ## # ℹ 271 more rows ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo <!-- --> --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Seleccionamos 30 muestras aleatorias de altura (en metros) de individuos de Cerro El Volcán (CV): ``` ## [1] 5.00 2.00 7.00 12.00 12.00 3.00 3.00 10.50 15.00 4.50 6.00 6.75 ## [13] 13.50 2.20 8.25 3.00 9.00 7.50 4.50 4.50 9.75 7.50 11.25 16.00 ## [25] 13.00 4.50 8.25 6.00 10.00 3.00 ``` Cuya mediana en este caso es 7.25 m. ``` ## [1] 7.25 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Vamos a probar las siguientes hipótesis: `\(H_{0}:\: Med = 7\\H_{a}:\: Med \neq 7\)` Restamos la mediana propuesta de cada valor de altura: ``` ## [1] -2.00 -5.00 0.00 5.00 5.00 -4.00 -4.00 3.50 8.00 -2.50 -1.00 -0.25 ## [13] 6.50 -4.80 1.25 -4.00 2.00 0.50 -2.50 -2.50 2.75 0.50 4.25 9.00 ## [25] 6.00 -2.50 1.25 -1.00 3.00 -4.00 ``` Sacamos su valor absoluto y ordenamos de forma ascendente el valor absoluto de las diferencias (como hay una diferencia igual a 0, la eliminamos): ``` ## [1] 0.25 0.50 0.50 1.00 1.00 1.25 1.25 2.00 2.00 2.50 2.50 2.50 2.50 2.75 3.00 ## [16] 3.50 4.00 4.00 4.00 4.00 4.25 4.80 5.00 5.00 5.00 6.00 6.50 8.00 9.00 ``` Clasificamos los datos (*ranking*): ``` ## [1] 1.0 2.5 2.5 4.5 4.5 6.5 6.5 8.5 8.5 11.5 11.5 11.5 11.5 14.0 15.0 ## [16] 16.0 18.5 18.5 18.5 18.5 21.0 22.0 24.0 24.0 24.0 26.0 27.0 28.0 29.0 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo Reasignamos a cada valor del *ranking* su signo correspondiente: ``` ## [1] -1.0 2.5 2.5 -4.5 -4.5 6.5 6.5 -8.5 8.5 -11.5 -11.5 -11.5 ## [13] -11.5 14.0 15.0 16.0 -18.5 -18.5 -18.5 -18.5 21.0 -22.0 -24.0 24.0 ## [25] 24.0 26.0 27.0 28.0 29.0 ``` Se calcula la suma de los *rankings* y la suma de los cuadrados de los *rankings*: ``` ## # A tibble: 1 × 2 ## Ri Ri_cuadrado ## <dbl> <dbl> ## 1 66 8541 ``` Se calcula el estadístico `\(T\)`: `\(T=\frac{66}{\sqrt{8541}}=0.71415\)` Esto se compara contra un `\(Z_{\frac{\alpha}{2}}=1.96\)`: `\(|0.71415| \geq 1.96\)` Lo cual, evidentemente, no es cierto. Por lo tanto, tenemos, con un `\(\alpha=0.05\)`, suficiente evidencia para aceptar `\(H_{0}\)`. Por lo tanto, la mediana de los datos es similar a 7. --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo A manera de ejemplo, también podemos calcular `\(R_{i}^{+}\)` y compararlo con el `\(T_{\text{crítico}}\)` de la tabla: `\(R_{i}^{+}=2.5+2.5+6.5+\dots+29=250.5\)` `\(T_{29; \:0.05}=126\)` `\(250.5 \leq 126\)` ❌ Por lo tanto, con un valor de `\(\alpha=0.05\)`, tenemos suficiente evidencia para aceptar `\(H_{0}\)`. Concluimos que la mediana es similar a 7. --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo La salida en R para esta prueba es la siguiente: ``` ## ## Wilcoxon signed rank test with continuity correction ## ## data: salida.campo.muestra ## V = 250.5, p-value = 0.4819 ## alternative hypothesis: true location is not equal to 7 ## 95 percent confidence interval: ## 5.974950 9.100027 ## sample estimates: ## (pseudo)median ## 7.50001 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de suma de rangos de Wilcoxon de una sola muestra - Ejemplo También podemos hacer la prueba en Excel, con un poco de ingenio: <div class="img-container"> <img src="data:image/png;base64,#img/wilcoxon_excel.png" width="480px" style="border: 1px black solid;"/> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes .pull-left[ **1** Se establecen las hipótesis: `\(H_{0}:\:Med_{1}=Med_{2}\)` `\(H_{a}:\:Med_{1} \neq Med_{2}\\H_{a}:\:Med_{1} > Med_{2}\\H_{a}:\:Med_{1} < Med_{2}\)` **2** Los datos de ambas muestras se unen, debidamente identificados, y se ordenan de forma ascendente. **3** Se clasifican las diferencias (se hace un *ranking*). Si hay empates (valores repetidos), se calcula la posición promedio. **4** Se suman los valores del *ranking* 1 (`\(R_{1}\)`) y del *ranking* 2 (`\(R_{2}\)`). **5** Se calcula el estadístico `\(U\)` para ambas muestras: `\(U_{1}=n_{1}n_{2}+\frac{n_{1}(n_{1}+1)}{2}-R_{1}\\U_{2}=n_{1}n_{2}+\frac{n_{2}(n_{2}+1)}{2}-R_{2}\)` ] .pull-right[ **6** Si no hay empates o representan menos del 10% de todos los datos (`\(n=n_{1}+n_{2}\)`), el estadístico de prueba `\(U\)` a escoger será: `\(U=min(U_{1},U_{2})\)` Si la cantidad de empates es igual o supera el 10% de `\(n\)`, o si `\(n_{1}\)` y `\(n_{2}\)` son mayores a 20, entonces se hace una correción a `\(Z\)` de la forma: `\(Z=\frac{U-\mu}{\sigma}\)` en donde: `\(\mu=\frac{n_{1}n_{2}}{2}\\ \sigma^{2}=\left(\frac{n_{1}n_{2}}{n^{2}-n}\right)\left(\frac{n^{3}-n}{12}-\sum\limits_{i=1}^{k}\frac{f_{i}^{3}-f_{i}}{12}\right)\)` siendo `\(k\)` el número total de empates, `\(f_{i}\)` el número de observaciones que comparten el rango de empate `\(i\)` y `\(n\)` el número total de observaciones. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes .pull-left[ **7** Si no hay empates, o son menos del 10%, se busca un valor `\(U_{\text{crítico}}\)` en la [tabla de Mann-Whitney](https://real-statistics.com/statistics-tables/mann-whitney-table/) con el valor de `\(\alpha\)` especificado (normalmente 0.05). Los valores se contrastan de la siguiente forma: `\(U \leq U_{n; \:\alpha} \text{ (DC)}\)` Si la prueba es de una sola cola, se duplica el valor de `\(\alpha\)` y se busca el valor de `\(U_{\text{crítico}}\)` en la tabla correspondiente: `\(U \leq U_{n; \: 2 \alpha} \text{ (CD)}\\-U \geq -U_{n; \: 2 \alpha} \text{ (CI)}\)` Si los valores de `\(n_{1}\)` y `\(n_{2}\)` son mayores a 20, el estadístico de prueba se cambia por `\(Z\)`, tal y como está descrito en el paso 6: `\(|Z| \geq Z_{\frac{\alpha}{2}} \text{ (DC)}\\Z \geq Z_{\alpha} \text{ (CD)}\\Z \leq -Z_{\alpha} \text{ (CI)}\)` ] .pull-right[ Si alguno de los contrastes para `\(U\)` o para `\(Z\)` se cumple (dependiendo de la direccionalidad de la prueba), entonces se dice que no se puede aceptar `\(H_{0}\)`. **Propiedades importantes a tener en cuenta** 1. **Propiedad 1**: `\(U_{1}+U_{2}=n_{1}n_{2}\)` 2. **Propiedad 2**: Para unos `\(n_{1}\)` y `\(n_{2}\)` lo suficientemente grandes, el estadístico `\(U\)` se distribuye de manera aprox. normal (`\(\mathcal{N}(\mu,\sigma^{2})\)`), tal que `\(\mu=\frac{n_{1}n_{2}}{2}\\ \sigma^{2}=\frac{n_{1}n_{2}(n_{1}+n_{2}+1)}{12}\)` 3. **Propiedad 3**: Si el número de empates es superior al 10% de `\(n\)`, entonces: `\(\sigma^{2}=\left(\frac{n_{1}n_{2}}{n^{2}-n}\right)\left(\frac{n^{3}-n}{12}-\sum\limits_{i=1}^{k}\frac{f_{i}^{3}-f_{i}}{12}\right)\)` ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Pondremos a prueba las hipótesis: `\(H_{0}:Med_{CV}=Med_{JB}\\H_{a}:Med_{CV} \neq Med_{JB}\)` Usaremos las mismas 30 muestras de altura para individuos vegetales de Cerro El Volcán (CV), y adicionalmente vamos a escoger 30 muestras aleatorias para el Jardín Botánico. **Cerro El Volcán (CV)**: ``` ## [1] 5.00 2.00 7.00 12.00 12.00 3.00 3.00 10.50 15.00 4.50 6.00 6.75 ## [13] 13.50 2.20 8.25 3.00 9.00 7.50 4.50 4.50 9.75 7.50 11.25 16.00 ## [25] 13.00 4.50 8.25 6.00 10.00 3.00 ``` **Jardín Botánico de Caracas (JB)**: ``` ## [1] 4.000 2.500 2.200 2.250 2.000 2.600 2.250 2.550 3.000 0.750 ## [11] 3.300 13.000 0.750 2.500 5.250 6.000 1.800 11.000 1.875 7.000 ## [21] 4.000 14.000 3.000 2.000 11.250 9.000 3.000 1.800 2.250 7.000 ``` Cuyas medianas son respectivamente 7.25 m (CV) y 2.80 m (JB). --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Unimos los datos de ambas muestras y los ordenamos de forma ascendente, manteniendo la identificación de cada una: ``` ## JB JB JB JB JB CV JB JB CV JB JB ## 0.750 0.750 1.800 1.800 1.875 2.000 2.000 2.000 2.200 2.200 2.250 ## JB JB JB JB JB JB CV CV CV CV JB ## 2.250 2.250 2.500 2.500 2.550 2.600 3.000 3.000 3.000 3.000 3.000 ## JB JB JB JB JB CV CV CV CV CV JB ## 3.000 3.000 3.300 4.000 4.000 4.500 4.500 4.500 4.500 5.000 5.250 ## CV CV JB CV CV JB JB CV CV CV CV ## 6.000 6.000 6.000 6.750 7.000 7.000 7.000 7.500 7.500 8.250 8.250 ## CV JB CV CV CV JB CV JB CV CV CV ## 9.000 9.000 9.750 10.000 10.500 11.000 11.250 11.250 12.000 12.000 13.000 ## JB CV JB CV CV ## 13.000 13.500 14.000 15.000 16.000 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo De esta forma, se crea el siguiente *ranking*: ``` ## JB JB JB JB JB CV JB JB CV JB JB JB JB JB JB JB ## 1.5 1.5 3.5 3.5 5.0 7.0 7.0 7.0 9.5 9.5 12.0 12.0 12.0 14.5 14.5 16.0 ## JB CV CV CV CV JB JB JB JB JB JB CV CV CV CV CV ## 17.0 21.0 21.0 21.0 21.0 21.0 21.0 21.0 25.0 26.5 26.5 29.5 29.5 29.5 29.5 32.0 ## JB CV CV JB CV CV JB JB CV CV CV CV CV JB CV CV ## 33.0 35.0 35.0 35.0 37.0 39.0 39.0 39.0 41.5 41.5 43.5 43.5 45.5 45.5 47.0 48.0 ## CV JB CV JB CV CV CV JB CV JB CV CV ## 49.0 50.0 51.5 51.5 53.5 53.5 55.5 55.5 57.0 58.0 59.0 60.0 ``` **Cerro El Volcán (CV)**: ``` ## [1] 7.0 9.5 21.0 21.0 21.0 21.0 29.5 29.5 29.5 29.5 32.0 35.0 35.0 37.0 39.0 ## [16] 41.5 41.5 43.5 43.5 45.5 47.0 48.0 49.0 51.5 53.5 53.5 55.5 57.0 59.0 60.0 ``` **Jardín Botánico de Caracas (JB)**: ``` ## [1] 1.5 1.5 3.5 3.5 5.0 7.0 7.0 9.5 12.0 12.0 12.0 14.5 14.5 16.0 17.0 ## [16] 21.0 21.0 21.0 25.0 26.5 26.5 33.0 35.0 39.0 39.0 45.5 50.0 51.5 55.5 58.0 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Con cada uno de los *rankings* separados, calculamos su suma: `\(R_{1}=7+9.5+21+\dots+60=1146\\R_{2}=1.5+1.5+3.5+\dots+58=684\)` Calculamos `\(U\)` para cada grupo: `\(U_{1}=(30)(30)+\frac{30(30+1)}{2}-1146=219\\U_{2}=(30)(30)+\frac{30(30+1)}{2}-684=681\)` Como `\(n_{1}\)` y `\(n_{2}\)` son mayores a 20, debemos hacer una aproximación a la normal por medio de `\(Z\)`. Para ello, debemos calcular `\(\mu\)` y `\(\sigma\)`: `\(\mu=\frac{(30)(30)}{2}=450\)` Para calcular `\(\sigma\)`, debemos contar el número de empates... --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo .pull-left[ Hay un total de `\(k=17\)` grupos con empates: - 1.5: 2 empates. - 3.5: 2 empates. - 7: 3 empates. - 9.5: 2 empates. - 12: 3 empates. - 14.5: 2 empates. - 21: 7 empates. - 26.5: 2 empates. - 29.5: 4 empates. - 35: 3 empates. - 39: 3 empates. - 41.5: 2 empates. - 43.5: 2 empates. - 45.5: 2 empates. - 51.5: 2 empates. - 53.5: 2 empates. - 55.5: 2 empates. ] .pull-right[ Por lo tanto: `\(\sum\limits_{i=1}^{17}\frac{f_{i}^{3}-f_{i}}{12}=\frac{1}{12}\left((2^{3}-2)+(2^{3}-2)+(3^{3}-3)+\dots\right)\\=46.5\)` `\(\sigma^{2}=\left(\frac{(30)(30)}{60^{2}-60}\right)\left(\frac{60^{3}-60}{12}-46.5\right)=4563.178\)` Así, el valor del estadístico `\(Z\)` es: `\(Z=\frac{219-450}{\sqrt{4563.178}}=-3.41962\)` Comparamos este valor contra un `\(Z_{\text{crítico}}\)` de 1.96: `\(|-3.41962| \geq 1.96\)` ✅ Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`. Concluimos que la diferencia entre alturas de individuos vegetales de CV y JB es distinta. ] --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Más R: ``` ## ## Asymptotic Wilcoxon-Mann-Whitney Test ## ## data: altura by lugar (CV, JB) ## Z = 3.4196, p-value = 0.0006271 ## alternative hypothesis: true mu is not equal to 0 ``` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Mann-Whitney-Wilcoxon para muestras independientes - Ejemplo Y más Excel: <div class="img-container"> <img src="data:image/png;base64,#img/mann-whitney_excel.png" width="900px" style="border: 1px black solid;"/> </div> --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados Es similar a la prueba de suma de rangos de Wilcoxon para una sola muestra, y se procede de la misma manera que esta. Lo único diferente es: 1. En vez de contrastar dos grupos independientes, se contrastan dos grupos pareados **provenientes de la misma unidad muestral**. 2. Se pone a prueba la hipótesis nula de que la mediana de las diferencias es cero: `\(H_{0}:Med_{d}=0\)` `\(H_{a}:Med_{d} \neq 0\\H_{a}:Med_{d} \geq 0\\H_{a}:Med_{d} \leq 0\)` 3. Se hace un *ranking* de las diferencias entre las muestras, no de las observaciones individuales. 4. Se calcula la suma de los *rankings* tanto positivos (`\(R_{i}^{+}\)`) como negativos (`\(R_{i}^{-}\)`). El estadístico de prueba `\(T\)` será el mínimo entre ambos: `\(T=min(R_{i}^{+},R_{i}^{-})\)` --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Para este ejemplo usaremos los datos de [Fuller y col. (2003)](https://doi.org/10.1242/jeb.00230) sobre la variabilidad de la temperatura arterial y cerebral de avestruces: <div class="img-container"> <img src="data:image/png;base64,#img/fuller2003_table1.png" style="border: 1px black solid;"/> </div> En este caso, tenemos `\(n=6\)` avestruces, a cada una de las cuales se les midió la temperatura en la arteria carótida y en el cerebro, en un período de 24 horas. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Planteamos las hipótesis: `\(H_{0}:Med_{d}=0\\H_{a}:Med_{d} \neq 0\)` O alternativamente: `\(H_{0}:Med_{\text{Cerebro}}-Med_{\text{Carótida}}=0\\H_{a}:Med_{\text{Cerebro}}-Med_{\text{Carótida}} \neq 0\)` Calculamos las diferencias entre temperaturas: ``` ## [1] 0.81 0.76 0.93 0.16 0.47 0.76 ``` Ordenamos las diferencias de forma ascendente: ``` ## [1] 0.16 0.47 0.76 0.76 0.81 0.93 ``` Con esto, obtenemos el siguiente *ranking*: ``` ## [1] 1.0 2.0 3.5 3.5 5.0 6.0 ``` Como solo hay valores positivos, no hace falta hacer asignar signos a los *rankings*. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Para una aproximación normal, calculamos la suma de los *rankings* y de sus cuadrados: `\(\sum\limits_{i=1}^{6}R_{i}=1+2+3.5+3.5+5+6=21\\ \sum\limits_{i=1}^{6}R_{i}^{2}=1+4+12.25+12.25+25+36=90.5\)` Y luego calculamos el estadístico de prueba `\(T\)`: `\(T=\frac{\sum\limits_{i=1}^{6}R_{i}}{\sqrt{\sum\limits_{i=1}^{6}R_{i}^{2}}}=\frac{21}{\sqrt{90.5}}=2.2075\)` Lo comparamos contra un valor de `\(Z_{\text{crítico}}\)` de 1.96: `\(2.2075 \geq 1.96\)` ✅ Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`, y concluimos diciendo hay una diferencia en la temperatura de la carótida y el cerebro de las avestruces luego de un período de 24 horas. --- class: justify, animate__animated, animate__fadeIn ## Prueba de Wilcoxon para rangos signados - Ejemplo Pero ya que `\(n<25\)`, buscamos la suma de los *rankings* positivos (`\(R_{i}^{+}\)`) y negativos (`\(R_{i}^{-}\)`): `\(\sum\limits_{i=1}^{6}R_{i}^{+}=21\\\sum\limits_{i=1}^{6}R_{i}^{-}=0\)` De esta manera, el estadístico de prueba `\(T\)` es: `\(T=min(R_{i}^{+},R_{i}^{-})=0\)` Buscamos el valor de `\(T_{\text{crítico}}\)` en la [tabla de Wilcoxon de rangos signados](https://real-statistics.com/statistics-tables/wilcoxon-signed-ranks-table/) para un valor de `\(\alpha=0.05\)` y `\(n=6\)`, el cual es: `\(T_{\text{crítico}}=0\)` Luego, contrastamos ambos valores: `\(0 \leq 0\)` ✅ Por lo tanto, no tenemos suficiente evidencia para aceptar `\(H_{0}\)`, y concluimos lo mismo de antes.